package xin.javashare.javacollectionsframework;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;

/**
 * 程序清单22.11 P39
 * 创建散列图、树形图和链式散列图
 */
public class TestMap {
    /**
     * @param args
     */
    public static void main(String[] args) {
        // Create a HashMap
        Map<String, Integer> hashMap = new HashMap<String, Integer>();
        hashMap.put("Smith", 30);
        hashMap.put("Anderson", 31);
        hashMap.put("Lewis", 29);
        hashMap.put("Cook", 29);

        // HashMap中的条目的顺序是随机的
        System.out.println("Display entries in HashMap");
        System.out.println(hashMap + "\n");

        // Create a TreeMap from the previous HashMap
        Map<String, Integer> treeMap = new TreeMap<String, Integer>(hashMap);

        // TreeMap中的条目是按键值的升序排列的
        System.out.println("Display entries in ascending order of key");
        System.out.println(treeMap);

        // Create a LinkedHashMap
        Map<String, Integer> linkedHashMap =
                new LinkedHashMap<String, Integer>(16, 0.75f, true);
        linkedHashMap.put("Smith", 30);
        linkedHashMap.put("Anderson", 31);
        linkedHashMap.put("Lewis", 29);
        linkedHashMap.put("Cook", 29);

        // Display the age of Lewis 最后被访问，因此排在最后
        System.out.println("The age for Lewis is " +
                linkedHashMap.get("Lewis").intValue());

        // LinkedHashMap的条目是按元素最后一次访问的时间从早到晚排序的
        System.out.println("\nDisplay entries in LinkedHashMap");
        System.out.println(linkedHashMap);
    }
}
